Methods and apparatus for enabling a hybrid web and native application

ABSTRACT

Systems and methodologies are described that enable hybrid web and native applications. A communications device may be equipped to process one or more links where each link may be associated with a workflow directive. Further, the communications device may be equipped to process a workflow directive associated with a link to pre-render a template while a content request including the link is being transmitted. Still further, the communications device may be equipped to apply content received in response to the content request to the pre-rendered template.

CLAIM OF PRIORITY UNDER 35 U.S.C. §119

The present application for patent claims priority to ProvisionalApplication No. 61/424,622 entitled “METHODS AND APPARATUS FOR ENABLINGA HYBRID WEB AND NATIVE APPLICATION” filed Dec. 18, 2010, and assignedto the assignee hereof and hereby expressly incorporated by referenceherein.

BACKGROUND

The disclosed aspects relate generally to communications between devicesand specifically to methods and systems for enabling hybrid web andnative applications.

Advances in technology have resulted in smaller and more powerfulpersonal computing devices. For example, there currently exist a varietyof portable personal computing devices, including wireless computingdevices, such as portable wireless telephones, personal digitalassistants (PDAs) and paging devices that are each small, lightweight,and can be easily carried by users. More specifically, the portablewireless telephones, for example, further include cellular telephonesthat communicate voice and data packets over wireless networks. Further,many such cellular telephones are being manufactured with relativelylarge increases in computing capabilities, and as such, are becomingtantamount to small personal computers and hand-held PDAs.

Further, applications resident on a device may fall into categories,such as light (e.g., dumb), heavy (e.g., smart), etc. A lightapplication, such as a web browser, may have limited ability tomanipulate and manage data on the device, as light applicationsbasically follow instructions provided to them with received content. Assuch, light applications allow a great degree of control from thenetwork-side (e.g., web-side) while providing limited local flexibility.Further, when a device receives web-based content (e.g., such as abrowser receiving a web page), the received content may includepresentation information (e.g., formatting information, layoutinformation, etc.) and data, where the presentation information defineshow the data should be rendered. For example, the presentationinformation may include cascading style sheets (CSS) and other HTML datathat a browser may parse into a document object model (DOM) forrendering the page. As such, the device has little local control overpresentation options of web-based content.

On the other hand, heavy applications include substantial programmingthat allows them to provide for local control and management overreceived content. As such, heavy applications allow a great deal oflocal (e.g., native) control while having limited network-side control.For example, to change functionality of a heavy application updates maybe used from the network-side.

Thus, improved apparatus and methods for enabling a hybrid web andnative application may be desired.

SUMMARY

The following presents a simplified summary of one or more aspects inorder to provide a basic understanding of such aspects. This summary isnot an extensive overview of all contemplated aspects, and is intendedto neither identify key or critical elements of all aspects nordelineate the scope of any or all aspects. Its sole purpose is topresent some concepts of one or more aspects in a simplified form as aprelude to the more detailed description that is presented later.

According to related aspects, a method for enabling hybrid web andnative applications is provided. The method can include obtaining aselection of one link from a first set of one or more links. In suchaspect, each link of the first set of one or more links is associatedwith a workflow directive. The method can also include transmitting acontent request including the obtained selection of the one link fromthe one or more links. The method can also include processing theworkflow directive associated with the one link from the first set ofone or more links to pre-render a template contemporaneously with thecontent request transmission. The method can also include receiving acontent message including content in response to the content request.Moreover, the method may include applying at least a portion of thereceived content from the content message to the pre-rendered template.

Another aspect relates to at least one processor configured to providehybrid web and native functionality. The at least one processor may beconfigured to obtain a selection of one link from a first set of one ormore links. In such aspect, each link of the first set of one or morelinks is associated with a workflow directive. The at least oneprocessor may also be configured to transmit a content request includingthe obtained selection of the one link from the one or more links. Theat least one processor may also be configured to process the workflowdirective associated with the one link from the first set of one or morelinks to pre-render a template contemporaneously with the contentrequest transmission. The at least one processor may also be configuredto receive a content message including content in response to thecontent request. Moreover, the at least one processor may be configuredto apply at least a portion of the received content from the contentmessage to the pre-rendered template.

Yet another aspect relates to a wireless communications apparatus thatprovides hybrid web and native functionality. The wirelesscommunications apparatus can include means for obtaining a selection ofone link from a first set of one or more links. In such aspect, eachlink of the first set of one or more links is associated with a workflowdirective. The wireless communications apparatus can additionallyinclude means for transmitting a content request including the obtainedselection of the one link from the one or more links. The wirelesscommunications apparatus can additionally include means for processingthe workflow directive associated with the one link from the first setof one or more links to pre-render a template contemporaneously with thecontent request transmission. The wireless communications apparatus canadditionally include means for receiving a content message includingcontent in response to the content request. Moreover, the wirelesscommunications apparatus can include means for applying at least aportion of the received content from the content message to thepre-rendered template.

Another aspect relates to a wireless communications apparatus. Thewireless communications apparatus can include a hybrid web and nativemodule operable to obtain a selection of one link from a first set ofone or more links. In such aspect, each link of the first set of one ormore links is associated with a workflow directive. The wirelesscommunications apparatus can include a transmitter operable to transmita content request including the obtained selection of the one link fromthe one or more links. Further, the wireless communications apparatushybrid web and native module may be operable to process the workflowdirective associated with the one link from the first set of one or morelinks to pre-render a template contemporaneously with the contentrequest transmission. The wireless communications apparatus can includea receiver operable to receive a content message including content inresponse to the content request. Moreover, the wireless communicationsapparatus hybrid web and native module may be operable to apply at leasta portion of the received content from the content message to thepre-rendered template.

Still another aspect relates to a computer program product, which caninclude a computer-readable medium. The computer-readable medium caninclude at least one instruction for causing a computer to obtain aselection of one link from a first set of one or more links. In suchaspect, each link of the first set of one or more links is associatedwith a workflow directive. The computer-readable medium can also includeat least one instruction for causing the computer to transmit a contentrequest including the obtained selection of the one link from the one ormore links. The computer-readable medium can also include at least oneinstruction for causing the computer to process the workflow directiveassociated with the one link from the first set of one or more links topre-render a template contemporaneously with the content requesttransmission. The computer-readable medium can also include at least oneinstruction for causing the computer to receive a content messageincluding content in response to the content request. Moreover, thecomputer-readable medium can include at least one instruction forcausing the computer to apply at least a portion of the received contentfrom the content message to the pre-rendered template.

To the accomplishment of the foregoing and related ends, the one or moreaspects comprise the features hereinafter fully described andparticularly pointed out in the claims. The following description andthe annexed drawings set forth in detail certain illustrative featuresof the one or more aspects. These features are indicative, however, ofbut a few of the various ways in which the principles of various aspectsmay be employed, and this description is intended to include all suchaspects and their equivalents.

BRIEF DESCRIPTION OF THE DRAWINGS

The disclosed aspects will hereinafter be described in conjunction withthe appended drawings, provided to illustrate and not to limit thedisclosed aspects, wherein like designations denote like elements, andin which:

FIG. 1 illustrates a block diagram of a communication network accordingto an aspect;

FIG. 2 illustrates a flowchart describing an example system for enablinga hybrid web and native application according to an aspect;

FIG. 3 illustrates a call flow diagram describing an example system forenabling hybrid web and native application according to an aspect;

FIG. 4 illustrates a call flow diagram describing another example systemfor enabling hybrid web and native application according to an aspect;

FIG. 5 illustrates a block diagram example architecture of acommunications device, according to one aspect;

FIG. 6 illustrates example block diagram of a content system accordingto an aspect; and

FIG. 7 illustrates an example system for enabling a hybrid web andnative application in a wireless communication system.

DETAILED DESCRIPTION

Various aspects are now described with reference to the drawings. In thefollowing description, for purposes of explanation, numerous specificdetails are set forth in order to provide a detailed understanding ofone or more aspects. It may be evident, however, that such aspect(s) maybe practiced without these specific details.

In accordance with one or more aspects and corresponding disclosurethereof, various aspects are described in connection with enablinghybrid web and native applications. In one example, a communicationsdevice may be equipped to process one or more links where each link maybe associated with a workflow directive. Further, the communicationsdevice may be equipped to process a workflow directive associated with alink to pre-render a template while a content request including the linkis being transmitted. Still further, the communications device may beequipped to apply content received in response to the content request tothe pre-rendered template.

Generally, a communications device having a hybrid web and native modulemay provide efficient exchange of information with a content serverthrough a network. This exchange of information may allow for contentserver (e.g., network-side) updates that provide a dynamicallychangeable user experience on the communications device. Additionally,the hybrid web and native module may provide integrated statefulfunctionality to allow for local operation on and/or control of contentreceived from the network side. As used herein, stateful functionalitymay reference to settings/configurations associated with content and/orsettings/configurations associated an application acting upon thecontent. As such, integrated stateful functionality may reference tosharing and/or knowledge of the stateful settings and/or configurationsacross multiple modules/platforms within the communications device. Asused in this disclosure, the term “content” or “content item” includes,at least, one or more of any type of application, multimedia file, imagefile, executable, program, web page, script, document, presentation,message, a website, music, a movie, data, meta-data, or any other typeof media or information that may be rendered, processed, or executed ona device, or an electronic identification of any of the foregoing. Stillfurther, each content item may be associated with a workflow directive.In one aspect, a workflow directive may include fields indicating,links, data, objects, etc., and additional processing informationassociated with each of the fields. In one aspect, local operationsand/or controls may be implemented through use of templates that may bepre-rendered in anticipation of expected content. As used herein,templates may include, but are not limited to, formatting andpresentation information with stateful functionality to process receivedcontent and workflow directives. Thus, hybrid web and native moduleprovides aspects of both a light application and a heavy applicationthrough interfacing of the web client portion with the stateful clientportion. In one aspect, a communications device may be a wirelesscommunications device (WCD), and/or multiple devices, both wireline andwireless. For example, multiple devices may work in tandem, as anetwork, etc.

With reference to FIG. 1, a block diagram of a communication network 100according to an aspect is illustrated. Communication network 100 mayinclude communications devices 110 connected to an access network and/orcore network 125 (e.g., a CDMA network, a GPRS network, a UMTS network,and other types of wireline and wireless communication networks).Communication network 100 may further include one or more of servers,such as content server 130, connected to network 125.

In one aspect, communications device 110 may further include hybrid weband native module 112, which may be operable to provide integratedstateful functionality to allow for local operation on and/or control ofdata. In one aspect, hybrid web and native module 112 may work inconjunction with a web browser on the communications device 110. Inanother aspect, hybrid web and native module 112 may be operable inplace of a web browser on the communications device 110. For example,hybrid web and native module 112 may use a Hypertext Transfer Protocol(HTTP) request to obtain information, such as but not limited to aRepresentational State Transfer (REST)-based mechanism, from contentserver 130 but without using JavaScript, a hypertext markup language(HTML) Document Object Model (DOM) tree, etc., such as used by a webbrowser. Further, hybrid web and native module 112 may be operable tostore (e.g., cache) recently requested and/or commonly requested contenton communications device 110 for efficient subsequent access.

Additionally, hybrid web and native module 112 may include userinterface module 114 that may allow a user to select one or more linkselections 116. In one aspect, each link has an associated workflowdirective 136 which may provide hybrid web and native module 112additional processing information related to the link selection 116. Inone aspect, workflow directive 136 may include fields indicating, links,data, objects, etc., and additional processing information associatedwith each of the fields.

Further, hybrid web and native module 112 may include workflow module118 that may be operable to allow local operations on obtained data. Inone aspect, workflow module may include pre-rendering module 122 whichmay be operable to process an obtained workflow directive 136 andpre-render a template available through layout module 120. Additionally,workflow module 118 may be configured to perform operations such as, butnot limited to, content downloads (e.g., network interactions) andinstallations, local content licensing checks, network checks forcontent updates and possible subsequent downloads and installs, contentpurchases (e.g., calling in to content server 130 (e.g., a network-basedpurchase system), making a payment, obtaining a license, etc.).

In one aspect, workflow module 118 may include dynamic layout codingwithin layout module 120. Such dynamic layout coding may havepresentation coding that is operable on data obtained from contentserver 130, and may control the presentation of said data. In oneaspect, layout module 120 may include an updateable scripting code, suchas LUA code, that may be updated (via a network update) to thereby allowefficient changes to the user experience associated with a nativeapplication.

Further, in one aspect, layout module 120 may further include a priorityidentifier corresponding to each piece of data of received content. Forexample, the content may include one or more objects, such as banners,etc., such as may be associated with a promotional set of content. Eachobject may have a corresponding priority identifier. As such, forexample, layout module 120 may generate a view of a “landing page” userinterface, and may lay out the objects on the page according to therespective priority identifier. For instance, the one or more of objectsmay be presented in an ordered list, and the priority identifiers maycomprise a plurality of different values that define a relativeplacement of the respective objects in the ordered list. In anotheraspect, layout module 120 may include a device-specific UI template thatmay define layout of data. In such aspect, data from received contentmay be presented in different manners on different communicationsdevices 110. Furthermore, in one aspect, each piece of datacorresponding to received content may have an original data layoutcharacteristic (e.g., defined in a workflow directive 136), such as anaspect ratio. In such an aspect, workflow module 118 may be operable touse the workflow directive 136 information to generate additionalversions of the data with different layout characteristics, such asdifferent versions with different aspect ratios. For example, in anaspect, workflow module 118 can include a device database having aplurality of identified devices each with a device profile. Each deviceprofile may include a display parameter that defines one or moredevice-specific layout parameters. Accordingly, workflow module 118 maygenerate one or more additional versions of the data having differentlayout characteristics to match each of the device-specific layoutparameters in the device database.

In one aspect, content server 130 may include workflow module 132. Asnoted above, user interface module 114 may receive a user inputselecting a link 116. Thereafter the link selection 116 may betransmitted to content server 130 to obtain the requested content.Workflow module 132 may be operable to process requests by providing oneor more additional links 134, data 138, and/or one or more objects 140.As noted above, each link 134, data set 138, and object 140 may beassociated with a workflow directive 136. The workflow directive may beoperable to provide a communications device 110 with additionalinformation related to the associated item (link 134, data 138, object140, etc.). For example, a workflow directive 136 associated with a link134 may indicate a structure associated with content accessible throughthe link (e.g., list, parent directory, sub-directory, etc.). In anotherexample, a work directive 136 associated with data 138 may indicate dataset size, formatting, headers, etc. In still another example, as notedabove, a workflow directive 136 associated with an object may indicateobject priority, listing structure, presentation formatting, etc.

As such, communication network 100 provides an environment in whichcommunications device 110 may enable a hybrid web and native module 112that provides aspects of both a light application and a heavyapplication through interfacing of the web client portion with thestateful client portion. In other words, the light applicationfunctionality of a web client may be provided through user interfacemodule 116 and the heavy application stateful client functionality maybe provided through workflow module 118.

FIGS. 2, 3, and 4 illustrate various methodologies in accordance withvarious aspects of the presented subject matter. While, for purposes ofsimplicity of explanation, the methodologies are shown and described asa series of acts or sequence steps, it is to be understood andappreciated that the claimed subject matter is not limited by the orderof acts, as some acts may occur in different orders and/or concurrentlywith other acts from that shown and described herein. For example, thoseskilled in the art will understand and appreciate that a methodologycould alternatively be represented as a series of interrelated states orevents, such as in a state diagram. Moreover, not all illustrated actsmay be required to implement a methodology in accordance with theclaimed subject matter. Additionally, it should be further appreciatedthat the methodologies disclosed hereinafter and throughout thisspecification are capable of being stored on an article of manufactureto facilitate transporting and transferring such methodologies tocomputers. The term article of manufacture, as used herein, is intendedto encompass a computer program accessible from any computer-readabledevice, carrier, or media.

With reference now to FIG. 2, an example flowchart describing a system200 which enables hybrid web and native functionality is illustrated. Atreference numeral 202, a message may be received by a communicationsdevice. In one aspect, the message may include one or more links, data,objects, etc. Further, each of the one or more links, data, objects,etc. may be associated with a workflow directive. At reference numeral204, a selection of a link is obtained. In one aspect, the linkselection may be received from a user through a user interface. Atreference numeral 206, a content request may be transmitted includingthe link selection. Contemporaneously, at reference 208, a workflowdirective associated with the link selection may be processed by thecommunications device to pre-render a template. In one aspect, thetemplate includes content formatting options, display/layout options,etc. In one aspect, the workflow directive may provide priority todefined sets, types, etc., of data, objects, links, etc. At referencenumeral 210, a content message is received in response to the contentrequest. In one aspect, the content may include content associated withthe content request and additional content provided by a content server.At reference numeral 212, at least a portion of the received content isapplied to the pre-rendered template. In one aspect, if the receivedcontent does not match the template within a threshold value, thecommunication device may either determine a sub-portion of the receivedcontent to display, or request a new template. In an aspect, in which asub-portion of the content is displayed, the device may determine thedisplayed portion through a priority list, may rotate through thecontent to display, etc.

With reference now to FIG. 3, a call flow diagram flowchart describing asystem 300 for enabling hybrid web and native functionality isillustrated, according to one aspect. System 300 includes acommunications device 302, such as communications device 110, and server304, such as content server 130. At 306, communications device 302 maytransmit a content request to server 304. In one aspect, the contentrequest may be formatted as an HTTP request. At 308, the server 304 maytransmit content in response to the request to the communicationsdevice. In one aspect, the content may include one or more links (URLs),objects (e.g., promotions), data, etc. In one aspect, the returnedcontent may include content provided by the server 304 that is differentfrom and in addition to the requested content. At 310, a link selectionmay be made on the communications device 302. In one aspect, theselection may be made by a user and received through a user interface.At 312, the selected link may be transmitted to the server 304. In oneaspect, the link may include a request for one or more additional links,data, one or more additional objects, etc. At 314, communications devicemay process the workflow directive associated with the selected link topre-render a template. In one aspect, the template may be selected toallow formatting, display layout, application activity, etc., to beinitiated prior to receiving a response to the link selection. In oneaspect, 314 may be performed contemporaneously with 312. At 316, contentis transmitted by the server 304 in response to the link selection. At318, at least a portion of the received content is applied to thetemplate and displayed accordingly. In one aspect, if the receivedcontent does not match the template within a threshold value, thecommunications device 302 may either determine to display a sub-portionof the received content, or request a new template from server 304. Inan aspect, in which a sub-portion of the content is displayed, thedevice may determine the displayed portion through a priority list, mayrotate through the content to display, etc.

Referring to FIG. 4, a call flow diagram flowchart describing anothersystem 400 for enabling hybrid web and native functionality isillustrated, according to one aspect. System 400 includes componentsassociated with a communications device, such as user interface 402,pre-renderer 404 and template module 406, and server 408, such ascontent server 130.

At 410, a user selection may select a link through user interface 402,and the selected link, along with an associated workflow directive maybe communicated to a pre-renderer 404. In one aspect, the workflowdirective may provide formatting, layout, etc., parameters. At 412, thepre-renderer 404 may process the received workflow directive andcommunicate with template module 406 to obtain one or more applicabletemplates. Further, at 414, the pre-renderer 404 may transmit the linkto a server 408 to obtain the requested content associated with theselected link. At 416, pre-renderer 404 may process the obtained one ormore templates to prepare for the requested content. At act 418, therequested content may be received by pre-renderer 404. In one aspect,the received content may include requested items such as links, data,objects, etc., and workflow directives associated with each of theitems. At 420, the received content is applied to the templates anddisplayed with the user interface 402. Optionally, where the receivedcontent includes additional workflow directives, pre-renderer 404 mayprocess the received workflow directives in anticipation of one or moresubsequent user selections.

While still referencing FIG. 1, but turning also now to FIG. 5, anexample architecture of communications device 110 is illustrated. Asdepicted in FIG. 5, device 500 comprises receiver 502 that receives asignal from, for instance, a receive antenna (not shown), performstypical actions on (e.g., filters, amplifies, downconverts, etc.) thereceived signal, and digitizes the conditioned signal to obtain samples.Receiver 502 can comprise a demodulator 504 that can demodulate receivedsymbols and provide them to processor 506 for channel estimation.Processor 506 can be a processor dedicated to analyzing informationreceived by receiver 502 and/or generating information for transmissionby transmitter 520, a processor that controls one or more components ofdevice 500, and/or a processor that both analyzes information receivedby receiver 502, generates information for transmission by transmitter520, and controls one or more components of device 500.

Device 500 can additionally comprise memory 508 that is operativelycoupled to processor 506 and that can store data to be transmitted,received data, information related to available channels, dataassociated with analyzed signal and/or interference strength,information related to an assigned channel, power, rate, or the like,and any other suitable information for estimating a channel andcommunicating via the channel. In one aspect, memory 508 can include oneor more templates 510. In one aspect, templates 510 may be used topre-render content, such as formatting, layout, etc., associated with aselected link, as defined through a workflow directive.

Further, processor 506 can provide means for obtaining a selection ofone link from a first set of one or more links, wherein each link of thefirst set of one or more links is associated with a workflow directive.The processor 506 can further provide means for transmitting a contentrequest including the obtained selection of the one link from the one ormore links. Further, the processor 506 can provide means for processingthe workflow directive associated with the one link from the first setof one or more links to pre-render a template contemporaneously with thecontent request transmission. Additionally, the processor 506 canprovide means for receiving a content message including content inresponse to the content request, and means for applying at least aportion of the received content from the content message to thepre-rendered template.

It will be appreciated that data store (e.g., memory 508) describedherein can be either volatile memory or nonvolatile memory, or caninclude both volatile and nonvolatile memory. By way of illustration,and not limitation, nonvolatile memory can include read only memory(ROM), programmable ROM (PROM), electrically programmable ROM (EPROM),electrically erasable PROM (EEPROM), or flash memory. Volatile memorycan include random access memory (RAM), which acts as external cachememory. By way of illustration and not limitation, RAM is available inmany forms such as synchronous RAM (SRAM), dynamic RAM (DRAM),synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhancedSDRAM (ESDRAM), Synchlink DRAM (SLDRAM), and direct Rambus RAM (DRRAM).Memory 508 of the subject systems and methods may comprise, withoutbeing limited to, these and any other suitable types of memory.

Device 500 can further include hybrid web and native module 530 whichmay be operable to provide integrated stateful functionality to allowfor local operation on and/or control of data. In one aspect, hybrid weband native module 530 may include workflow module 534 that may beoperable to allow local operations on obtained data. In one aspect,workflow module 534 may include pre-rendering module 538 which may beoperable to process an obtained workflow directive and pre-render atemplate available through layout module 536. Additionally,pre-rendering module 538 may be configured to perform operations suchas, but not limited to, content downloads (e.g. network interactions)and installations, local content licensing checks, network checks forcontent updates and possible subsequent downloads and installs, orcontent purchases (e.g. calling in to a network-based purchase system,making a payment, obtaining a license, etc.).

In one aspect, workflow module 534 may include dynamic layout codingwithin layout module 536. Such dynamic layout coding may havepresentation coding that is operable on data obtained from contentserver, and may control the presentation of said data. In one aspect,layout module 536 may include an updateable scripting code, such as LUAcode, that may be updated (via a network update) to thereby allowefficient changes to the user experience associated with a nativeapplication.

Further, in one aspect, layout module 536 may further include a priorityidentifier corresponding to each piece of data of received content. Forexample, the content may include one or more objects, such as banners,etc., such as may be associated with a promotional set of content. Eachobject may have a corresponding priority identifier. As such, forexample, layout module 536 may generate a view of a “landing page” userinterface, and may lay out the objects on the page according to therespective priority identifier. For instance, the one or more objectsmay be presented in an ordered list, and the priority identifiers maycomprise a plurality of different values that define a relativeplacement of the respective objects in the ordered list. In anotheraspect, layout module 536 may include a device-specific UI template thatmay define layout of data. In this manner, data from received contentmay be presented in different manners on different devices 500.Furthermore, in one aspect, each piece of data corresponding to receivedcontent may have an original data layout characteristic (e.g., definedin a workflow directive), such as an aspect ratio. In such an aspect,workflow module 534 may be operable to use the workflow directiveinformation to generate additional versions of the data with differentlayout characteristics, such as different versions with different aspectratios. For example, in an aspect, workflow module 534 can include adevice database having a plurality of identified devices each with adevice profile. In such aspect, each device profile may include adisplay parameter that defines one or more device-specific layoutparameters. Accordingly, workflow module 534 may generate one or moreadditional versions of the data having different layout characteristicsto match each of the device-specific layout parameters in the devicedatabase.

Additionally, communications device 500 may include user interface 540.User interface 540 may include input mechanisms 542 for generatinginputs into communications device 500, and output mechanism 544 forgenerating information for consumption by the user of the communicationsdevice 500. For example, input mechanism 542 may include a mechanismsuch as a key or keyboard, a mouse, a touch-screen display, amicrophone, etc. Further, for example, output mechanism 544 may includea display, an audio speaker, a haptic feedback mechanism, a PersonalArea Network (PAN) transceiver etc. In the illustrated aspects, theoutput mechanism 544 may include a display operable to present mediacontent that is in image or video format or an audio speaker to presentmedia content that is in an audio format. Further, user interface 540may allow a user to select one or more links. In one aspect, each linkhas an associated workflow directive which may provide hybrid web andnative module 530 additional processing information related to the linkselection.

It will be appreciated that user identity module 550 described hereincan be either volatile memory or nonvolatile memory, or can include bothvolatile and nonvolatile memory. By way of illustration, and notlimitation, nonvolatile memory can include read only memory (ROM),programmable ROM (PROM), electrically programmable ROM (EPROM),electrically erasable PROM (EEPROM), or flash memory. Volatile memorycan include random access memory (RAM), which acts as external cachememory. By way of illustration and not limitation, RAM is available inmany forms such as synchronous RAM (SRAM), dynamic RAM (DRAM),synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhancedSDRAM (ESDRAM), Synchlink DRAM (SLDRAM), and direct Rambus RAM (DRRAM).

With reference to FIG. 6, illustrated is a detailed block diagram ofcontent system 600, such as content server 130 depicted in FIG. 1.Content system 600 may comprise at least one of any type of hardware,server, personal computer, mini computer, mainframe computer, or anycomputing device either special purpose or general computing device.Further, the modules and applications described herein as being operatedon or executed by content system 600 may be executed entirely on asingle network device, as shown in FIG. 6, or alternatively, in otheraspects, separate servers, databases or computer devices may work inconcert to provide data in usable formats to parties, and/or to providea separate layer of control in the data flow between devices, such ascommunications device 110, and the modules and applications executed bycontent system 600.

Content system 600 includes computer platform 602 that can transmit andreceive data across wired and wireless networks, and that can executeroutines and applications. Computer platform 602 includes memory 604,which may comprise volatile and nonvolatile memory such as read-onlyand/or random-access memory (ROM and RAM), EPROM, EEPROM, flash cards,or any memory common to computer platforms. Further, memory 604 mayinclude one or more flash memory cells, or may be any secondary ortertiary storage device, such as magnetic media, optical media, tape, orsoft or hard disk. Further, computer platform 602 also includesprocessor 630, which may be an application-specific integrated circuit(“ASIC”), or other chipset, logic circuit, or other data processingdevice. Processor 630 may include various processing subsystems 632embodied in hardware, firmware, software, and combinations thereof, thatenable the functionality of media content distribution system 14 and theoperability of the network device on a wired or wireless network.

Computer platform 602 further includes communications module 650embodied in hardware, firmware, software, and combinations thereof, thatenables communications among the various components of content system600, as well as between content system 600, and communications device110. Communications module 650 may include the requisite hardware,firmware, software, and/or combinations thereof for establishing awireless communication connection. According to described aspects,communications module 650 may include the necessary hardware, firmware,and/or software to facilitate wireless and/or wireline communicationbetween content server 130 and communications device 110.

Memory 604 of content system 600 includes a workflow module 610 whichmay be operable to process requests by providing one or more links 612,data sets 616, and/or one or more objects 618. As noted earlier, eachlink 612, data set 616, and object 618 may be associated with a workflowdirective 614. The workflow directive may be operable to provide acommunications device 110 with additional information related to theassociated item (link 612, data 616, object 618, etc.). For example, aworkflow directive 614 associated with a link 612 may indicate astructure associated with content accessible through the link (e.g.,list, parent directory, sub-directory, etc.). In another example, a workdirective 136 associated with data 138 may indicate data set size,formatting, headers, etc. In still another example, as noted above, aworkflow directive 136 associated with an object may indicate objectpriority, listing structure, presentation formatting, etc.

Referring to FIG. 7, an apparatus 700 that enables a hybrid web andnative application to reside at least partially within a mobile deviceis described, according to one aspect. It is to be appreciated thatapparatus 700 is represented as including functional blocks, which canrepresent functions implemented by a processor, software, or combinationthereof (e.g., firmware). As such, apparatus 700 includes a logicalgrouping 702 of electrical components that can act in conjunction. Forinstance, logical grouping 702 can include means for obtaining aselection of one link from a first set of one or more links, whereineach link of the first set of one or more links is associated with aworkflow directive (Block 704). For example, in an aspect, the means 704can include hybrid and native module 530 and/or processor 506. In oneaspect, the content may include a second set of one or more links, oneor more objects, a template format update, etc. In one such aspect,where the content includes a template format update, apparatus 700 mayprovide means for updating the pre-rendered template based on thereceived template format update. In another aspect, the content mayinclude data that includes a first set of data associated with thecontent request, and a second set of data provided by a content server.In such an aspect, the second set of data may include objects,promotions, one or more links, etc. In one aspect, the workflowdirective may include priority indications associated with displayingthe received content using the template. In such an aspect, the priorityindications may include an ordered list for displaying at least one of:the data, or the one or more objects.

Further, logical grouping 702 can include means for transmitting acontent request including the obtained selection of the one link fromthe one or more links (Block 706). For example, in an aspect, the means706 can include transmitter 520 and/or processor 506. Further, logicalgrouping 702 can include means for processing the workflow directiveassociated with the one link from the first set of one or more links topre-render a template contemporaneously with the content requesttransmission (Block 708). For example, in an aspect, the means 708 caninclude hybrid and native module 530 and/or processor 506. Further,logical grouping 702 can include means for receiving a content messageincluding content in response to the content request (Block 710). Forexample, in an aspect, the means 706 can include receiver 502 and/orprocessor 506. Further, logical grouping 702 can include means forapplying at least a portion of the received content from the contentmessage to the pre-rendered template (Block 712). For example, in anaspect, the means 708 can include hybrid and native module 530 and/orprocessor 506.

Additionally, apparatus 700 can include a memory 714 that retainsinstructions for executing functions associated with electricalcomponents 704, 706, 708, 710, and 712. While shown as being external tomemory 714, it is to be understood that one or more of electricalcomponents 704, 706, 708, 710 and 712 can exist within memory 714. In anaspect, for example, memory 714 may be the same as or similar to memory508 (FIG. 5).

In one aspect, apparatus 700 can provide means for receiving a firstmessage including the first set of one or more links and data, one ormore objects, etc. In such an aspect, each of the data, and one or moreobjects may be associated with a workflow directive. In another aspect,apparatus 700 can provide means for determining content formatting,display layout, etc., for the template from the workflow directive. Inanother aspect, apparatus 700 can provide means for mapping a portion ofthe received content to the template. In another aspect, apparatus 700can provide means for determining that the at least a portion of thecontent does not match the pre-rendered template, means for determininga sub-portion of the content to apply to the template, and means forapplying the sub-portion to the template. In another aspect, apparatus700 can provide means for determining the at least a portion of thecontent does not match the pre-rendered template, means for transmittinga template format update request to match the received content, meansfor receiving a second template format update in response to thetemplate format update request, and means for applying the at least aportion of the received content to a second template generated using thesecond template format update.

As used in this application, the terms “component,” “module,” “system”and the like are intended to include a computer-related entity, such asbut not limited to hardware, firmware, a combination of hardware andsoftware, software, or software in execution. For example, a componentmay be, but is not limited to being, a process running on a processor, aprocessor, an object, an executable, a thread of execution, a program,and/or a computer. By way of illustration, both an application runningon a computing device and the computing device can be a component. Oneor more components can reside within a process and/or thread ofexecution and a component may be localized on one computer and/ordistributed between two or more computers. In addition, these componentscan execute from various computer readable media having various datastructures stored thereon. The components may communicate by way oflocal and/or remote processes such as in accordance with a signal havingone or more data packets, such as data from one component interactingwith another component in a local system, distributed system, and/oracross a network such as the Internet with other systems by way of thesignal.

Furthermore, various aspects are described herein in connection with aterminal, which can be a wired terminal or a wireless terminal Aterminal can also be called a system, device, subscriber unit,subscriber station, mobile station, mobile, mobile device, remotestation, remote terminal, access terminal, user terminal, terminal,communication device, user agent, user device, or user equipment (UE). Awireless terminal may be a cellular telephone, a satellite phone, acordless telephone, a Session Initiation Protocol (SIP) phone, awireless local loop (WLL) station, a personal digital assistant (PDA), ahandheld device having wireless connection capability, a computingdevice, or other processing devices connected to a wireless modem.Moreover, various aspects are described herein in connection with a basestation. A base station may be utilized for communicating with wirelessterminal(s) and may also be referred to as an access point, a Node B, orsome other terminology.

Moreover, the term “or” is intended to mean an inclusive “or” ratherthan an exclusive “or.” That is, unless specified otherwise, or clearfrom the context, the phrase “X employs A or B” is intended to mean anyof the natural inclusive permutations. That is, the phrase “X employs Aor B” is satisfied by any of the following instances: X employs A; Xemploys B; or X employs both A and B. In addition, the articles “a” and“an” as used in this application and the appended claims shouldgenerally be construed to mean “one or more” unless specified otherwiseor clear from the context to be directed to a singular form.

The techniques described herein may be used for various wirelesscommunication systems such as CDMA, TDMA, FDMA, OFDMA, SC-FDMA and othersystems. The terms “system” and “network” are often usedinterchangeably. A CDMA system may implement a radio technology such asUniversal Terrestrial Radio Access (UTRA), cdma2000, etc. UTRA includesWideband-CDMA (W-CDMA) and other variants of CDMA. Further, cdma2000covers IS-2000, IS-95, and IS-856 standards. A TDMA system may implementa radio technology such as Global System for Mobile Communications(GSM). An OFDMA system may implement a radio technology such as EvolvedUTRA (E-UTRA), Ultra Mobile Broadband (UMB), IEEE 802.11 (Wi-Fi), IEEE802.16 (WiMAX), IEEE 802.20, Flash-OFDM, etc. UTRA and E-UTRA are partof Universal Mobile Telecommunication System (UMTS). 3GPP Long TermEvolution (LTE) is a release of UMTS that uses E-UTRA, which employsOFDMA on the downlink and SC-FDMA on the uplink. UTRA, E-UTRA, UMTS,LTE, and GSM are described in documents from an organization named “3rdGeneration Partnership Project” (3GPP). Additionally, cdma2000 and UMBare described in documents from an organization named “3rd GenerationPartnership Project 2” (3GPP2). Further, such wireless communicationsystems may additionally include peer-to-peer (e.g., mobile-to-mobile)ad hoc network systems often using unpaired unlicensed spectrums, 802.xxwireless LAN, BLUETOOTH and any other short- or long-range, wirelesscommunication techniques.

Various aspects or features will be presented in terms of systems thatmay include a number of devices, components, modules, and the like. Itis to be understood and appreciated that the various systems may includeadditional devices, components, modules, etc. and/or may not include allof the devices, components, modules etc. discussed in connection withthe figures. A combination of these approaches may also be used.

The various illustrative logics, logical blocks, modules, and circuitsdescribed in connection with the aspects disclosed herein may beimplemented or performed with a general purpose processor, a digitalsignal processor (DSP), an application specific integrated circuit(ASIC), a field programmable gate array (FPGA) or other programmablelogic device, discrete gate or transistor logic, discrete hardwarecomponents, or any combination thereof designed to perform the functionsdescribed herein. A general-purpose processor may be a microprocessor,but, in the alternative, the processor may be any conventionalprocessor, controller, microcontroller, or state machine. A processormay also be implemented as a combination of computing devices, e.g., acombination of a DSP and a microprocessor, a plurality ofmicroprocessors, one or more microprocessors in conjunction with a DSPcore, or any other such configuration. Additionally, at least oneprocessor may comprise one or more modules operable to perform one ormore of the steps and/or actions described above.

Further, the steps and/or actions of a method or algorithm described inconnection with the aspects disclosed herein may be embodied directly inhardware, in a software module executed by a processor, or in acombination of the two. A software module may reside in RAM memory,flash memory, ROM memory, EPROM memory, EEPROM memory, registers, a harddisk, a removable disk, a CD-ROM, or any other form of storage mediumknown in the art. An example storage medium may be coupled to theprocessor, such that the processor can read information from, and writeinformation to, the storage medium. In the alternative, the storagemedium may be integral to the processor. Further, in some aspects, theprocessor and the storage medium may reside in an ASIC. Additionally,the ASIC may reside in a user terminal. In the alternative, theprocessor and the storage medium may reside as discrete components in auser terminal. Additionally, in some aspects, the steps and/or actionsof a method or algorithm may reside as one or any combination or set ofcodes and/or instructions on a machine readable medium and/or computerreadable medium, which may be incorporated into a computer programproduct.

In one or more aspects, the functions described may be implemented inhardware, software, firmware, or any combination thereof. If implementedin software, the functions may be stored or transmitted as one or moreinstructions or code on a computer-readable medium. Computer-readablemedia includes both computer storage media and communication mediaincluding any medium that facilitates transfer of a computer programfrom one place to another. A storage medium may be any available mediathat can be accessed by a computer. By way of example, and notlimitation, such computer-readable media can comprise RAM, ROM, EEPROM,CD-ROM or other optical disk storage, magnetic disk storage or othermagnetic storage devices, or any other medium that can be used to carryor store desired program code in the form of instructions or datastructures and that can be accessed by a computer. Also, any connectionmay be termed a computer-readable medium. For example, if software istransmitted from a website, server, or other remote source using acoaxial cable, fiber optic cable, twisted pair, digital subscriber line(DSL), or wireless technologies such as infrared, radio, and microwave,then the coaxial cable, fiber optic cable, twisted pair, DSL, orwireless technologies such as infrared, radio, and microwave areincluded in the definition of medium. Disk and disc, as used herein,includes compact disc (CD), laser disc, optical disc, digital versatiledisc (DVD), floppy disk, and blu-ray disc where disks usually reproducedata magnetically, while discs usually reproduce data optically withlasers. Combinations of the above should also be included within thescope of computer-readable media.

While the foregoing disclosure discusses illustrative aspects and/orimplementations, it should be noted that various changes andmodifications could be made herein without departing from the scope ofthe described aspects and/or implementations as defined by the appendedclaims. Furthermore, although elements of the described aspects and/orimplementations may be described or claimed in the singular, the pluralis contemplated unless limitation to the singular is explicitly stated.Additionally, all or a portion of any aspect and/or implementation maybe utilized with all or a portion of any other aspect and/orimplementation, unless stated otherwise.

1. A method of communications for a device, comprising: obtaining aselection of one link from a first set of one or more links, whereineach link of the first set of one or more links is associated with aworkflow directive; transmitting a content request including theobtained selection of the one link from the one or more links;processing the workflow directive associated with the one link from thefirst set of one or more links to pre-render a templatecontemporaneously with the content request transmission; receiving acontent message including content in response to the content request;and applying at least a portion of the received content from the contentmessage to the pre-rendered template.
 2. The method of claim 1, whereinthe received content comprises at least one of: a second set of one ormore links, data, or one or more objects.
 3. The method of claim 1,wherein the received content comprises a template format update, andwherein the applying further comprises updating the pre-renderedtemplate based on the received template format update.
 4. The method ofclaim 1, further comprising: receiving a first message including thefirst set of one or more links and at least one of data, or one or moreobjects, wherein each of the data, and one or more objects is associatedwith a workflow directive.
 5. The method of claim 1, wherein theprocessing further comprises: determining at least one of contentformatting, or display layout for the template from the workflowdirective.
 6. The method of claim 1, wherein the workflow directivecomprises priority indications associated with displaying the receivedcontent using the template.
 7. The method of claim 6, wherein thepriority indications comprise an ordered list for displaying at leastone of the data, or the one or more objects.
 8. The method of claim 1,wherein the applying further comprises: mapping the at least a portionof the received content to the template.
 9. The method of claim 1,wherein the applying further comprises: determining that at least aportion of the received content does not match the pre-renderedtemplate; determining a sub-portion of the received content to apply tothe template; and applying the sub-portion to the template.
 10. Themethod of claim 1, wherein the applying further comprises: determiningthat at least a portion of the received content does not match thepre-rendered template; transmitting a template format update request tomatch the received content; receiving a second template format update inresponse to the template format update request; and applying the atleast a portion of the received content to a second template generatedusing the second template format update.
 11. The method of claim 1,wherein the received content further comprises data, wherein the datacomprises a first set of data associated with the content request, and asecond set of data provided by a content server.
 12. The method of claim11, wherein the second set of data comprises at least one of objects,promotions, or one or more links.
 13. At least one processor configuredto provide hybrid web and native functionality, the at least oneprocessor configured to: obtain a selection of one link from a first setof one or more links, wherein each link of the first set of one or morelinks is associated with a workflow directive; transmitting a contentrequest including the obtained selection of the one link from the one ormore links; processing the workflow directive associated with the onelink from the first set of one or more links to pre-render a templatecontemporaneously with the content request transmission; receiving acontent message including content in response to the content request;and applying at least a portion of the received content from the contentmessage to the pre-rendered template.
 14. A computer program product,comprising: a computer-readable medium comprising: least one instructionto cause a computer to obtain a selection of one link from a first setof one or more links, wherein each link of the first set of one or morelinks is associated with a workflow directive; least one instruction tocause the computer to transmitting a content request including theobtained selection of the one link from the one or more links; least oneinstruction to cause the computer to process the workflow directiveassociated with the one link from the first set of one or more links topre-render a template contemporaneously with the content requesttransmission; least one instruction to cause the computer to receive acontent message including content in response to the content request;and least one instruction to cause the computer to apply at least aportion of the received content from the content message to thepre-rendered template.
 15. An apparatus, comprising: means for obtaininga selection of one link from a first set of one or more links, whereineach link of the first set of one or more links is associated with aworkflow directive; means for transmitting a content request includingthe obtained selection of the one link from the one or more links; meansfor processing the workflow directive associated with the one link fromthe first set of one or more links to pre-render a templatecontemporaneously with the content request transmission; means forreceiving a content message including content in response to the contentrequest; and means for applying at least a portion of the receivedcontent from the content message to the pre-rendered template.
 16. Anapparatus for providing hybrid web and native functionality, comprising:a hybrid web and native module operable to obtain a selection of onelink from a first set of one or more links, wherein each link of thefirst set of one or more links is associated with a workflow directive;a transmitter operable to transmit a content request including theobtained selection of the one link from the one or more links, thehybrid web and native module being further operable to process theworkflow directive associated with the one link from the first set ofone or more links to pre-render a template contemporaneously with thecontent request transmission; and a receiver operable to receive acontent message including content in response to the content request,wherein the hybrid web and native module is further operable to apply atleast a portion of the received content from the content message to thepre-rendered template.
 17. The apparatus of claim 16, wherein thereceived content comprises at least one of a second set of one or morelinks, data, or one or more objects.
 18. The method of claim 16, whereinthe received content comprises a template format update, and wherein thehybrid web and native module is further operable to update thepre-rendered template based on the received template format update. 19.The apparatus of claim 16, wherein the receiver is further operable toreceive a first message including the first set of one or more links andat least one of data, or one or more objects, each of the data, and oneor more objects being associated with a workflow directive.
 20. Theapparatus of claim 16, wherein the hybrid web and native module isfurther operable to determine at least one of content formatting, ordisplay layout for the template from the workflow directive.
 21. Theapparatus of claim 16, wherein the workflow directive comprises priorityindications associated with displaying the received content using thetemplate.
 22. The apparatus of claim 21, wherein the priorityindications comprise an ordered list for displaying at least one of thedata, or the one or more objects.
 23. The apparatus of claim 16, whereinthe hybrid web and native module is further operable to map the at leasta portion of the received content to the template.
 24. The apparatus ofclaim 16, wherein the hybrid web and native module is further operableto: determine that at least a portion of the received content does notmatch the pre-rendered template; determine a sub-portion of the receivedcontent to apply to the template; and apply the sub-portion to thetemplate.
 25. The apparatus of claim 16, wherein the hybrid web andnative module is further operable to determine that at least a portionof the received content does not match the pre-rendered template,wherein the transmitter is further operable to transmit a templateformat update request to match the received content, wherein thereceiver is further operable to receive a second template format updatein response to the template format update request; and wherein thehybrid web and native module is further operable to apply the at least aportion of the received content to a second template generated using thesecond template format update.
 26. The apparatus of claim 16, whereinthe received content further comprises data, and wherein the datacomprises a first set of data associated with the content request, and asecond set of data provided by a content server.
 27. The apparatus ofclaim 26, wherein the second set of data comprises at least one ofobjects, promotions, or one or more links.